// 创建按钮
const button = document.createElement('button');
button.textContent = '执行脚本';

// 设置初始样式
button.style.position = 'fixed';
button.style.zIndex = '9999';
button.style.padding = '10px 20px';
button.style.backgroundColor = '#4CAF50';
button.style.color = '#fff';
button.style.border = 'none';
button.style.borderRadius = '5px';
button.style.cursor = 'move';

// 将按钮添加到页面
document.body.appendChild(button);

// 从 chrome.storage.local 中获取保存的位置
chrome.storage.local.get('buttonPosition', (data) => {
  if (data.buttonPosition) {
    button.style.left = data.buttonPosition.left;
    button.style.top = data.buttonPosition.top;
  } else {
    // 默认位置
    button.style.left = '10px';
    button.style.top = '10px';
  }
});

// 定义变量
let isDragging = false;
let offset = { x: 0, y: 0 };

// 添加事件监听器
// 按下鼠标时
button.addEventListener('mousedown', (e) => {
  isDragging = true;
  // 计算鼠标指针与按钮左上角的偏移
  offset.x = e.clientX - button.getBoundingClientRect().left;
  offset.y = e.clientY - button.getBoundingClientRect().top;
  // 修改按钮定位为 absolute，以便能在拖动时改变位置
  button.style.position = 'absolute';
});

// 在页面上移动鼠标时
document.addEventListener('mousemove', (e) => {
  if (isDragging) {
    // 防止选中文本
    e.preventDefault();
    // 计算新的位置
    let left = e.clientX - offset.x;
    let top = e.clientY - offset.y;
    // 限制按钮在窗口内，不超出边界
    const maxLeft = window.innerWidth - button.offsetWidth;
    const maxTop = window.innerHeight - button.offsetHeight;
    left = Math.min(Math.max(0, left), maxLeft);
    top = Math.min(Math.max(0, top), maxTop);
    // 设置按钮的新位置
    button.style.left = left + 'px';
    button.style.top = top + 'px';
  }
});

// 释放鼠标时
document.addEventListener('mouseup', () => {
  if (isDragging) {
    isDragging = false;
    // 修改按钮定位为 fixed，以维持在滚动页面时的位置固定
    button.style.position = 'fixed';
    // 修正位置，使其相对于窗口
    const rect = button.getBoundingClientRect();
    button.style.left = rect.left + 'px';
    button.style.top = rect.top + 'px';
    // 保存位置到 chrome.storage.local
    chrome.storage.local.set({
      buttonPosition: {
        left: button.style.left,
        top: button.style.top
      }
    });
  }
});

// 添加点击事件监听器
button.addEventListener('click', (event) => {
  // 防止在拖动时触发点击事件
  if (isDragging) return;
  // 发送消息给后台脚本，要求执行 your_script.js





  // 定义一个 sleep 函数，返回一个 Promise，在指定的毫秒数后解决
function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

async function performActions() {
  document.querySelector('form .el-input.el-input--suffix > span > span > i').click();
  await sleep(500); // 等待0.5秒

  document.querySelector('ul.el-scrollbar__view.el-cascader-menu__list > li').click();
  await sleep(500); // 等待0.5秒

  document.querySelectorAll('.el-scrollbar__view.el-cascader-menu__list')[1].querySelectorAll('.el-checkbox__inner')[1].click();
  await sleep(500); // 等待0.5秒

  document.querySelectorAll('#pane-examPreparation .el-icon-arrow-up')[0].click();
  await sleep(500); // 等待0.5秒

  document.querySelectorAll('.el-select-dropdown.el-popper')[1].querySelectorAll('ul li')[1].click();
  await sleep(500); // 等待0.5秒
  
  
   document.querySelectorAll('#pane-examPreparation .el-icon-arrow-up')[1].click()

  await sleep(500); // 等待0.5秒

 
  let elements = document.querySelectorAll('.el-select-dropdown.el-popper')[1]
  await sleep(500); // 等待0.5秒

  elements.querySelectorAll('ul li')[1].click()



  await sleep(500); // 等待0.5秒


  document.querySelector("#app > div > form > div:nth-child(2) > div:nth-child(2) > div > div > div.el-cascader__tags").click()

}

// 调用异步函数
performActions();



  // chrome.runtime.sendMessage({ action: 'executeScript' });
});
